﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Windows.Forms;

namespace Aeroporto.bd
{
    //Esta classe é para ajudar a debugar
    class Arquivo
    {
        private static string path = @"C:\temp\ArquivoExemplo.txt";
        
        public static void escrever(String texto)
        {
            try
            {                
                //Instancio a classe FileStream, uso a classe File e o método Create para criar o
                //arquivo passando como parâmetro a variável path, que contém o arquivo
                using (FileStream fs = File.Create(path))
                {
                    //Crio outro using, dentro dele instancio o StreamWriter (classe para gravar os dados)
                    //que recebe como parâmetro a variável fs, referente ao FileStream criado anteriormente
                    using (StreamWriter sw = new StreamWriter(fs))
                    {
                        //Uso o método Write para escrever algo em nosso arquivo texto
                        sw.Write(texto);
                    }
                }
            }catch (Exception ex){
                MessageBox.Show(ex.Message);
            } 
            //Se tudo ocorrer bem, exibo a mensagem ao usuário.
            //MessageBox.Show("Arquivo criado com sucesso!!!");
        }

        public static void escrever(String texto, String path)
        {
            try
            {
                //Instancio a classe FileStream, uso a classe File e o método Create para criar o
                //arquivo passando como parâmetro a variável path, que contém o arquivo
                using (FileStream fs = File.Create(path))
                {
                    //Crio outro using, dentro dele instancio o StreamWriter (classe para gravar os dados)
                    //que recebe como parâmetro a variável fs, referente ao FileStream criado anteriormente
                    using (StreamWriter sw = new StreamWriter(fs))
                    {
                        //Uso o método Write para escrever algo em nosso arquivo texto
                        sw.Write(texto);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            //Se tudo ocorrer bem, exibo a mensagem ao usuário.
            //MessageBox.Show("Arquivo criado com sucesso!!!");
        }

        public static void ler()
        {
            try
            {
                //Verifico se o arquivo que desejo abrir existe e passo como parâmetro a respectiva variável
                if (File.Exists(path))
                {
                    //Se existir "starto" um processo do sistema para abrir o arquivo e, sem precisar
                    //passar ao processo o aplicativo a ser aberto, ele abre automaticamente o Notepad
                    System.Diagnostics.Process.Start(path);
                }else{
                    //Se não existir exibo a mensagem
                    MessageBox.Show("Arquivo não encontrado!");
                }
            }catch (Exception ex) {
                MessageBox.Show(ex.Message);
            }
        }

        public static string ler(String path)
        {
            string retorno = "";
            try
            {
                //Verifico se o arquivo que desejo abrir existe e passo como parâmetro a respectiva variável
                if (File.Exists(path))
                {                    
                    using (StreamReader texto = new StreamReader(path))
                    {
                        string aux = "";
                        while (( aux = texto.ReadLine()) != null)
                        {
                            retorno += aux;
                        }
                     }                    
                }
                else
                {
                    //Se não existir exibo a mensagem
                    MessageBox.Show("Arquivo não encontrado!");                    
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            return retorno;
        }

        public static void concatenar(string texto)
        {
            try
            {
                //Verifico se o arquivo que desejo abrir existe e passo como parâmetro a respectiva variável
                if (File.Exists(path))
                {
                    //Crio um using, dentro dele instancio o StreamWriter, uso a classe File e o método
                    //AppendText para concatenar o texto, passando como parâmetro a variável path
                    using (StreamWriter sw = File.AppendText(path))
                    {
                        //Uso o método Write para escrever o arquivo que será adicionado no arquivo texto
                        sw.Write("\r\n"+texto);
                    } 
                    //Exibo a mensagem que o arquivo foi atualizado
                    MessageBox.Show("Arquivo atualizado!");
                }else{
                    //Se não existir exibo a mensagem
                    MessageBox.Show("Arquivo não encontrado!");
                }
            }catch (Exception ex){
                MessageBox.Show(ex.Message);
            }
        }
    }
}
